#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "qcustomplot.h"
#include <QDateTime>
#include <QTimer>
#include <QVector>
#include <QLabel>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

// 前向声明 SaveDataThread 类
class SaveDataThread;
class SensorDataThread;

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void updatePlot(double time, double valueX, double valueY, double valueZ);
    void saveSensorData();

private:
    Ui::MainWindow *ui;
    QCustomPlot *plotX;
    QCustomPlot *plotY;
    QCustomPlot *plotZ;
    //QTimer *timer;
    QDateTime startTime;
    SensorDataThread *m_sensorThread; // 传感器数据线程

    // 数据缓冲区
    QVector<double> times;
    QVector<double> valuesX;
    QVector<double> valuesY;
    QVector<double> valuesZ;
    QVector<double> allTimes;
    QVector<double> allValuesX;
    QVector<double> allValuesY;
    QVector<double> allValuesZ;


    // 标签控件
    QLabel *labelX;
    QLabel *labelY;
    QLabel *labelZ;
    QLabel *coordXLabel;
    QLabel *coordYLabel;
    QLabel *coordZLabel;

};
#endif // MAINWINDOW_H
